package com.sjx.lib_network.bean

import com.google.gson.annotations.SerializedName

/**
 * FileName: WeatherData.kt
 * Founder: sjx
 * Profile: bean
 */
data class WeatherResponse(
    val code: String, //  表示请求的状态码，这里是 "200"，通常表示请求成功
    val updateTime: String, // 表示天气数据的更新时间，格式为 ISO 8601
    val fxLink: String, // 提供了一个链接，通过它可以查看更详细的天气信息。在这里，链接指向宝安地区的天气信息
    val now: NowData?, // 包含了当前的天气信息
    val refer: ReferData? //  提供了数据来源和许可证信息
)

data class NowData(
    val obsTime: String, // 表示观测时间
    val temp: String, // 表示当前温度
    val feelsLike: String, // 表示当前体感温度
    val icon: String, // 表示天气图标的编号，例如 "104"
    val text: String, //  表示天气现象的描述，例如 "阴"
    val wind360: String, // 表示风向的角度
    val windDir: String, // 表示风向的方向
    val windScale: String, // 表示风力的等级
    val windSpeed: String, // 表示风力的等级
    val humidity: String, // 表示湿度
    val precip: String, // 表示降水量
    val pressure: String, //  表示气压
    val vis: String, // 表示能见度
    val cloud: String, // 表示云量
    val dew: String //  表示露点温度
)

data class ReferData(
    val sources: List<String>, // 表示数据的来源，这里是 "和风天气" 云云
    val license: List<String> // 表示使用数据的许可证，这里是 "CC BY-SA 4.0" 云云
)

data class HourlyWeatherResponse(
    val code: String,            // 状态码
    val updateTime: String,      // 更新时间
    val fxLink: String,          // 天气链接
    val hourly: List<HourlyData>, // 小时预报列表
    val refer: ReferData          // 参考信息
)

data class HourlyData(
    val fxTime: String,  // 预报时间
    val temp: String,    // 温度
    val icon: String,    // 天气图标
    val text: String,    // 天气描述
    val wind360: String, // 风向角度
    val windDir: String, // 风向
    val windScale: String, // 风力等级
    val windSpeed: String, // 风速
    val humidity: String,  // 相对湿度
    val pop: String,       // 降水概率
    val precip: String,    // 降水量
    val pressure: String,  // 气压
    val cloud: String,     // 云量
    val dew: String        // 露点温度
)


data class DailyWeatherResponse(
    val code: String,
    val updateTime: String,
    val fxLink: String,
    val daily: List<DailyItem>,
    val refer: Refer
)

data class DailyItem(
    val fxDate: String,
    val sunrise: String,
    val sunset: String,
    val moonrise: String,
    val moonset: String,
    val moonPhase: String,
    val moonPhaseIcon: String,
    val tempMax: String,
    val tempMin: String,
    val iconDay: String,
    val textDay: String,
    val iconNight: String,
    val textNight: String,
    val wind360Day: String,
    val windDirDay: String,
    val windScaleDay: String,
    val windSpeedDay: String,
    val wind360Night: String,
    val windDirNight: String,
    val windScaleNight: String,
    val windSpeedNight: String,
    val humidity: String,
    val precipitation: String,
    val pressure: String,
    val visibility: String,
    val cloud: String,
    val uvIndex: String
)

data class Refer(
    val sources: List<String>,
    val license: List<String>
)


